Malfunction determining apparatus of engine system

ABSTRACT

A malfunction determining apparatus of an engine system that has an improved malfunction determining accuracy. The apparatus includes a processing unit. The processing unit performs a test for the engine system every time a predetermined condition is satisfied and determines whether there is a malfunction in the engine system based on the test result. The number of times when a malfunction is detected is represented by malfunction counter value. The processing unit evaluates the reliability of malfunction counter value based on a normality counter value. When the malfunction counter value is reliable and reaches a predetermined value, the processing unit determines that there is a malfunction in the engine system.

BACKGROUND OF THE INVENTION

[0001] The present invention relates to an engine system, moreparticularly, to a malfunction determining apparatus of engine system.

[0002] A typical vehicle engine system has a malfunction determiningapparatus, or a self-testing apparatus, for determining a malfunction inthe system. To improve the determination accuracy, the malfunctiondetermining apparatus consecutively performs malfunction tests. If theapparatus detects a malfunction in a predetermined number of times ofthe test, the apparatus determines that the system is malfunctioning.

[0003] During a so-called short trip, in which the engine is stoppedrelatively early after being started, the malfunction test is performedonly limited times. The engine may be stopped before the number of timesof test in which a malfunction is detected reaches a predeterminednumber. Therefore, even if a malfunction is detected in each ofconsecutive short trips, the malfunction determining apparatus cannotdetermine a malfunctioning or determines a malfunctioning after a timelag. Particularly, in an engine system that performs so-called economyrunning, in which an engine is automatically stopped and restarted, eachrunning time of the engine can be significantly short. Thus, the abovedisadvantage is pronounced.

[0004] Japanese Unexamined Patent Publication No. 7-36727 discloses anengine system that maintains the number of times of malfunction test inwhich a malfunction is detected. Specifically, the system of thepublication maintains the number of detected malfunctions after theengine is stopped and accumulates the maintained number over severalrunning periods. If short trips are repeated, a malfunction is reliablydetermined when the accumulated number of detected malfunctions reachesa predetermined number.

[0005] However, accumulating the number of detected malfunctions overseveral running periods may lower the accuracy of the malfunctiondetermination. That is, erroneously detected malfunctions are counted asdetected malfunctions even if the erroneous detection is relativelyscarce and accidental. If the number of erroneously detectedmalfunctions is accumulated for an extended period and the number ofdetected malfunctions reaches a predetermined number, the system iserroneously determined to have a malfunction. Accordingly, the accuracyof the malfunction determination is lowered.

BRIEF SUMMARY OF THE INVENTION

[0006] Accordingly, it is an objective of the present invention toprovide a malfunction determining apparatus of an engine system thataccurately determines a malfunction.

[0007] To achieve the foregoing and other objective and in accordancewith the purpose of the present invention, an apparatus for determiningthe state of an engine system is provided. The apparatus includes aprocessing unit and a memory. The processing unit includes determiningmeans, first counter means and second counter means. The detecting meansdetects whether there is a malfunction in the engine system every time apredetermined condition is satisfied. The first counter means generatesa first counter value by counting the number of times when the detectingmeans detects a malfunction. The second counter means generates a secondcounter value for evaluating the reliability of the first counter value.The memory is connected to the processing unit and stores the first andsecond counter values regardless of whether the engine is stopped. Theprocessing unit further includes determining means. The determiningmeans evaluates the reliability of the first counter value based on thesecond counter value. When the first counter value is reliable andreaches a predetermined value, the determining means determines thatthere is a malfunction in the engine system.

[0008] The present invention may also be embodied in a method fordetermining the state of an engine system. The method includes detectingwhether there is a malfunction in the engine system every time apredetermined condition is satisfied, generating a first counter valueby counting the number of times when a malfunction is detected in thedetecting step, generating a second counter value for evaluating thereliability of the first counter value, storing the first and secondcounter values in a memory, wherein the memory maintains the first andsecond counter values regardless of whether the engine is stopped,evaluating the reliability of the first counter value based on thesecond counter value, and determining that there is a malfunction in theengine system when the first counter value is reliable and reaches apredetermined value.

[0009] Other aspects and advantages of the invention will becomeapparent from the following description, taken in conjunction with theaccompanying drawings, illustrating by way of example the principles ofthe invention.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF DRAWING

[0010] The invention, together with objects and advantages thereof, maybest be understood by reference to the following description of thepresently preferred embodiments together with the accompanying drawingsin which:

[0011]FIG. 1 is a schematic block diagram illustrating a malfunctiondetermining apparatus according to a first embodiment of the presentinvention;

[0012]FIG. 2 is a flowchart showing a malfunction determinationprocedure of the apparatus of FIG. 1;

[0013]FIG. 3 is a timing chart showing malfunction and normality countervalues used in the apparatus of FIG. 1;

[0014]FIG. 4 is a timing chart showing a malfunction determinationprocedure of a malfunction determining apparatus according to a secondembodiment of the present invention;

[0015]FIG. 5 is a flowchart showing a malfunction test procedure of theapparatus according to the second embodiment;

[0016]FIG. 6 is a flowchart showing a malfunction determinationprocedure of the apparatus according to the second embodiment; and

[0017]FIG. 7 is a flowchart showing a malfunction determinationprocedure of an apparatus according to a third embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0018] A malfunction determining apparatus of an engine system 90according to a first embodiment of the present invention will now bedescribed with reference to FIGS. 1 to 3. The malfunction determiningapparatus determines a malfunction of the engine system 90 when idlespeed control is being executed.

[0019] As shown in FIG. 1, the engine system 90 includes an engine speedsensor 1 for detecting the speed of the engine (not shown), an airflowmeter 2 for detecting the amount of intake air drawn into theengine, a coolant temperature sensor 3 for detecting the temperature ofthe engine coolant, an idling sensor (idle switch) 4 for detecting thatan acceleration pedal (not shown) is not depressed, or that an throttlevalve (not shown) is fully closed. The sensors 1 to 4 detect the runningstate of the engine.

[0020] The sensors 1 to 4 are connected to a malfunction determiningapparatus, which is an electronic control unit (ECU) 100 in thisembodiment. The ECU 100 is connected to various actuators. The actuatorsinclude an ignition plug 11 for igniting air-fuel mixture in acombustion chamber, an injector 12 for supplying fuel to the combustionchamber, and an idle speed control valve (ISCV) 13 for adjusting theamount of intake air when the engine is idling. The actuators, or theplug 11, the injector 12 and ISCV 13, control the running state of theengine. The ECU 100 is also connected to an alarm lamp 14. When amalfunction of the engine system 90 is determined, the lamp 14 is litnotify the passengers of the malfunction.

[0021] The ECU 100 detects the running state of the engine based onsensor output signals from the sensors 1 to 4 and actuates theactuators, accordingly, to control the running state of the engine.Also, the ECU 100 monitors the state of the engine system 90 accordingto signals from the sensors 1 to 4 for determining the state of theengine system 90.

[0022] The ECU 100 includes a central processing unit (CPU) 110, a readonly memory (ROM) 120, a normal random access memory (normal RAM) 130and a standby random access memory (standby RAM) 140. The ROM 120 storesvarious programs for controlling the running state of the engine and aprogram for determining a malfunction. The normal RAM 130 and thestandby RAM 140 store the running state obtained by the CPU 110 based onsensor output signals and the results of computations regarding controlprocedures and tests for the engine.

[0023] The normal RAM 130 has a flag area 131 for storing the values ofvarious flags and a data area 132 for storing data. Information storedin the flag area 131 and the data area 132 is maintained only when theECU 100 is supplied with power. When the engine is stopped and providingof power to the ECU 100 is stopped, the information is erased. In otherwords, information stored in the normal RAM 130 is maintained in thecurrent trip and is erased in the subsequent trip.

[0024] The standby RAM 140 has a malfunction counter value area 141 anda normality counter value area 142, a flag area 143, and a data area144. The malfunction counter value area 141 stores a malfunction countervalue counted by the CPU 110, which represents the number of times ofmalfunction tests in which a malfunction is detected. The flag area 143stores a flag that is used in malfunction tests. The data area 144stores data such as learned values used in various control procedure ofthe engine. The standby RAM 140 is always supplied with power from apower source (not shown) such as a battery. Information stored in theareas 141 to 144 is maintained even if providing of power to the ECU 100is stopped. In other words, information stored in the standby RAM 140 ismaintained when the engine is stopped and is carried over to the nexttrip.

[0025] An idle speed control procedure of the engine system 90 and amalfunction determination procedure in the idle speed control procedurewill now be described.

[0026] The idle speed control procedure refers to a control of theidling speed of the engine. That is, when the throttle valve (not shown)is fully closed, the CPU 110 feedback controls the engine speed.Specifically, the CPU 110 changes the opening of the ISCV 13 foradjusting the amount of intake air such that the actual engine speedmatches with a target speed.

[0027] When there is a malfunction in the idle speed control procedure,the actual engine speed does not match the target speed. The CPU 110determines whether there is a malfunction in the idle speed controlprocedure based on the difference between the actual engine speed andthe target engine speed.

[0028] A malfunction determination routine will now be described.

[0029] If the actual engine speed is significantly different from thetarget speed during the idle speed control procedure, there might be amalfunction, for example, of the ISCV 13. If the difference between theactual speed and the target speed is equal to or greater than apredetermined value when a predetermined period has elapsed after theidle speed control procedure is started, the CPU 110 detects amalfunction of the engine system 90. When detecting a malfunction, theCPU 110 increments the malfunction counter value. The CPU 110 thenreplaces the malfunction counter value stored in the malfunction countervalue area 141 of the standby RAM 140 with the incremented value. Whenthe malfunction counter value, or the number of times of test in which amalfunction is detected, reaches a predetermined threshold value, theCPU 110 determines that the system 90 has a malfunction.

[0030] In this manner, the number of times of test in which amalfunction is detected, or the accumulated number of detectedmalfunctions, is stored in the standby RAM 140. Generally, the engineidles for a limited period at a time. In other words, the idle speedcontrol procedure lasts for a limited period. In such a short period,the CPU 110 performs the malfunction test. Based on the accumulatednumber of detected malfunctions, the CPU 110 reliably determines amalfunction of the engine system 90. That is, even if short trips ineach of which the number of detected malfunctions does not reach thethreshold value are repeated, the malfunction counter value isaccumulated over the trips. Therefore, the malfunction detected in eachtrip is not wasted but is used for reliably and quickly determining amalfunction of the system 90.

[0031] When determining that the actual engine speed is substantiallyequal to the target engine speed, the CPU 110 detects that the idlespeed control procedure is normal. Every time determining that the idlespeed control procedure is normal, the CPU 110 increments a normalitycounter value and replaces the normality counter value stored in thenormality counter value area 142 of the standby RAM 140 with theincremented value. When the normality counter value, or the number oftimes in which the idle speed control procedure is determined to benormal, reaches a predetermined threshold value, the CPU 110 determinesthat the malfunction counter value is unreliable and resets themalfunction counter value to an initial value, or zero. During a singleidling period, the CPU 110 detects whether the idle speed control isnormal or abnormal once.

[0032] In the present invention, the reliability of the malfunctioncounter value is evaluated based on detection results that indicate thatthe system 90 is normal. Further, the reliability of the normalitycounter value is evaluated based on the malfunction counter value. Thatis, a malfunction of the system 90 is determined while the reliabilityof the normality counter value and the malfunction counter value areevaluated based on each other. The reliability of the normality countervalue is evaluated for the following reasons. Suppose that the normalitycounter value is accumulated and approaches the threshold value overseveral trips and a control system of the idle speed control proceduremalfunctions. In this case, the malfunction counter value is accumulatedevery time the malfunction is detected. However, if the normal state ofthe system is erroneously detected and the normality counter valuereaches the threshold value, the malfunction counter value is reset tozero. As a result, the malfunction is determined after a delay. Toprevent such drawbacks, the normality counter value is reset to zerowhen the malfunction counter value reaches the predetermined thresholdvalue.

[0033] The malfunction determination routine will now be described withreference to FIG. 2. The CPU 110 executes the malfunction determinationroutine of FIG. 2 according to a control program stored in the ROM 120as an interruption routine every predetermined period.

[0034] In step S100, the CPU 110 determines whether a malfunction testcondition is satisfied. The CPU 110 determines that the malfunction testcondition is satisfied when the output signal of the idle sensor 4 isrising and a predetermined period has elapsed after the idle speedcontrol procedure is started.

[0035] When determining that the malfunction test condition issatisfied, the CPU 110 proceeds to step S110 and performs malfunctiondetection based on the difference between the actual engine speed andthe target engine speed. If the difference exceeds a predeterminedvalue, the CPU 110 detects a malfunction and proceeds to step S120. Instep S120, the CPU 110 increments the malfunction counter value.

[0036] In a subsequent step S130, the CPU 110 determines whether themalfunction counter value is equal to or greater than a predeterminedvalue α. The value α is a reference value for evaluating the reliabilityof the normality counter value. If the malfunction counter value isequal to or greater than the value α, a malfunction is likely to existand the accumulated normality counter value is evaluated to beunreliable.

[0037] If the malfunction counter is equal to or greater than the valueα in step S130, a malfunction is likely to exist and the reliability ofthe normality counter value is low. In this case, the normality countervalue is reset to zero in step S140.

[0038] In step S150, the CPU 110 determines whether the malfunctioncounter value is equal to or greater than a predetermined value β. Thevalue β is a reference value for determining whether there is amalfunction in the control system that performs the idle speed controlprocedure. The value β is greater than the value α. If the malfunctioncounter value is greater than the value β, the CPU 110 proceeds to stepS160. In step S160, the CPU 110 determines that there is a malfunctionin the idle speed control procedure. In this case, the CPU 110 lightsthe alarm lamp 14 to notify the passengers of the malfunction andterminates the malfunction determination routine. Also, the CPU 110terminates the routine when the malfunction test condition is notsatisfied in step S100, when the malfunction counter value is less thanthe value α in step S130 and when the malfunction counter value is lessthan the value β in step S150.

[0039] If no malfunction is detected in step S110, the CPU 110 proceedsto step S170 and detects whether the state of the system is normal basedon the difference between the actual engine speed and the target enginespeed. That is, if the difference is less than a predetermined value andthe actual engine speed is substantially equal to the target enginespeed, the CPU 110 determines that the control system is normal. In thiscase, the CPU 110 proceeds to step S180 and increments the normalitycounter value.

[0040] In step S190, the CPU 110 determines whether the normalitycounter value is equal to or greater than a predetermined value γ. Thevalue γ is a reference value for evaluating the reliability of themalfunction counter value. If the normality counter value is equal to orgreater than the value γ, the CPU 110 determines that the accumulatedmalfunction counter value is unreliable and proceeds to step S200. Instep S200, the CPU 110 resets the malfunction counter value and thenormality counter value to zero.

[0041] After executing step S200, the CPU 110 terminates the malfunctiondetermination routine. The CPU 110 also terminates the routine when thesystem is not determined to be normal in step S170 and when themalfunction counter value is less than the value γ in step S190.

[0042] Changes of the malfunction counter value and changes of thenormality counter value in the malfunction determination routine areshown in the timing chart of FIG. 3. The malfunction counter value isincremented before time t1 in the timing chart. Thereafter, thenormality counter value is incremented after time t1. When the normalitycounter value reaches the value γ, the malfunction counter value and thenormality counter value are reset to zero at time t2. That is, when theaccumulated number of times in which the system is determined to benormal reaches a predetermined number, the accumulated number ofdetected malfunctions is determined to be unreliable and is reset tozero.

[0043] When the normality counter value is incremented before time t3and a malfunction occurs at time t3, the malfunction counter value isincremented and accumulated thereafter. The malfunction counter valuereaches the value α at time t4, which resets the normality counter valueto zero. That is, the accumulated number of times in which the system isdetermined to be normal is determined to be unreliable based ondetection results indicating malfunction, and the accumulated number oftimes in which the system is determined to be normal is reset. Thus, ifthe system is accidentally determined to be normal at time t5, themalfunction counter value is not reset to zero. When the malfunctioncounter value reaches the predetermined value due to the number ofdetected malfunctions after time t5, a malfunction is determined at timet6. This determination is not affected by erroneously detected normalstate of the system.

[0044] The malfunction determining apparatus 100 has the followingadvantages.

[0045] (1) The malfunction counter value, which represents the number ofaccumulated detected malfunctions, is stored in the standby RAM 140, andthe malfunction counter value is maintained when the engine is notrunning. Therefore, when short trips are repeated, or when only limitednumber of malfunction test is performed, a malfunction is reliablydetermined. Further, when the normality counter value is equal to orgreater than the value γ, the CPU 110 determines that the malfunctioncounter value is unreliable and resets the malfunction counter value.Therefore, a malfunction is determined based on the reliable malfunctioncounter value. As a result, erroneous determination of a malfunction dueto erroneously detected malfunctions is prevented, which improves theaccuracy of the malfunction determination. Also, the normality countervalue and the malfunction counter value are evaluated based on eachother, which improves the accuracy of the malfunction determination.

[0046] (2) When the malfunction counter value is equal to or greaterthan the value α, the CPU 110 determines that the normality countervalue is unreliable and resets the normality counter value. Therefore,the malfunction counter value is not reset based on the unreliablenormality counter value, which improves the accuracy of the malfunctiondetermination.

[0047] A malfunction determining apparatus according to a secondembodiment of the present invention will now be described. Thedifferences from the first embodiment will mainly be discussed below.

[0048] In the first embodiment, if the malfunction counter value reachesthe value β in a relatively long trip, a malfunction is determined.However, the determined malfunction may not be reproduced and may beresolved by restarting the engine.

[0049] In the second embodiment, the CPU 110 performs a preliminarymalfunction determination in a first trip to detect a malfunction. If amalfunction is detected in a second trip, which is later than the firsttrip, the CPU 110 determines that there is a malfunction in the system90. Therefore, in the second embodiment, a malfunction that is notreproduced is not detected as a malfunction of the system 90.

[0050] The malfunction determination routine according to the secondembodiment will now be described with reference to the timing chart ofFIG. 4.

[0051] If the malfunction test condition (FIG. 4(b)) is satisfied in them^(th) trip, the CPU 110 monitors the difference between the actualengine speed (FIG. 4(a)) and a target engine speed. If the difference isgreater than a predetermined value and the actual engine speed issignificantly different from the target value, the CPU 110 detects amalfunction (FIG. 4(c)). Every time detecting a malfunction, the CPU 110increments the malfunction counter value (times t1 to t5 in FIG. 4(d))If the malfunction counter value reaches a predetermined value (forexample, five) in the (m+1)^(th) trip (time t5), the CPU 110 sets amalfunction flag on and stores the malfunction flag in the flag area 131of the RAM 130. Further, the CPU 110 sets the preliminary malfunctiondetermination flag (FIG. 4(f)) on and stores the preliminary malfunctiondetermination flag in the flag area 143 of the standby RAM 140. The CPU110 then resets the malfunction counter value to zero (time t6). Thepreliminary malfunction determination flag represents that there is amalfunction. Thereafter, if a malfunction is detected in the (m+1)^(th)trip, the malfunction counter value is not accumulated. When the(m+1)^(th) trip is finished (time t7), the malfunction flag stored inthe normal RAM 130 is erased. In this state, the (m+2)^(th) trip isstarted (time t8) while the malfunction flag is off.

[0052] When the (m+2)^(th) trip is started, the CPU 110 sets amalfunction determining condition flag on (FIG. 4(g)) based on thepreliminary malfunction determination flag, which is on. The CPU 110then stores the malfunction determination condition flag in the flagarea 131 of the normal RAM 130. After (m+2)^(th) trip, the CPU 110increments the malfunction counter value every time a malfunction isdetected. When the malfunction counter value reaches the predeterminedvalue (e.g. five) again in the n^(th) trip, the CPU 110 sets themalfunction flag on. When the malfunction flag is on and the malfunctiondetermining condition flag is on, the CPU 110 determines that there is amalfunction in the system 90 and lights the alarm lamp 14 (FIG. 4(h)).

[0053] Next, a malfunction determination routine for setting thepreliminary malfunction determination flag and the malfunction flag willbe described with reference to the flowchart of FIG. 5. The CPU 110executes the malfunction determination routine of FIG. 5 according to acontrol program stored in the ROM 120 as an interruption routine everypredetermined period.

[0054] Like in step S100 of FIG. 2, the CPU 110 determines whether themalfunction test condition is satisfied in step S300.

[0055] If the malfunction test condition is satisfied, the CPU 110proceeds to step S310. Like in step S110 of FIG. 2, the CPU 110determines whether a malfunction is detected in step S310. If amalfunction is detected, the CPU 110 determines whether the malfunctionflag is off in step S320. That is, the CPU 110 determines whether thepreliminary malfunction determination has already been executed in thecurrent trip.

[0056] If the malfunction flag is off, the CPU 110 increments themalfunction counter value and resets the normality counter value to zeroin step S330. Based on the fact that a malfunction is detected in stepS310, the CPU 110 determines that the normality counter value isunreliable and resets the normality counter value to zero.

[0057] In step S340, the CPU 110 determines whether the malfunctioncounter value is equal to or greater than a predetermined value ε. Likethe value β, the value ε is a threshold value for determining amalfunction. If the malfunction counter value is equal to or greaterthan the value ε, the CPU 110 proceeds to step S350. In step S350, theCPU 110 sets the malfunction flag and the preliminary malfunctiondetermination flag on, and resets the malfunction counter value to zero.Thereafter, the CPU 110 terminates the routine for setting thepreliminary malfunction determination flag and the malfunction flag.

[0058] The CPU 110 terminates the routine of FIG. 5 when the malfunctiontest condition is not satisfied in step S300, when the malfunction flagis on in step S320 and when the malfunction counter value is less thanthe value ε in step S340.

[0059] If a malfunction is not detected in step S310, the CPU 110proceeds to step S360. Like in step S170, the CPU 110 determines whetherthe state of the system is normal in step S360. If the state is normal,the CPU 110 proceeds to step S370. In step S370, the CPU 110 resets themalfunction counter value to zero and increments the normality countervalue. The CPU 110 determines that the malfunction counter value isunreliable based on the fact that the state of the system is determinedbe normal, and resets the malfunction counter value to zero.

[0060] In step S380, the CPU 110 determines whether the normalitycounter value is equal to or greater than a predetermined value δ. Ifthe normality counter value is equal to or greater than the value δ, theCPU 110 proceeds to step S390. In step S390, the CPU 110 sets themalfunction flag and the preliminary malfunction determination flag on,and resets the normality counter value to zero. The CPU 110 determinesthat the result of the preliminary malfunction determination isunreliable based on the normality counter value and resets the historyof the preliminary malfunction determination. In this manner, routinefor setting the preliminary malfunction determination flag and themalfunction flag is terminated. The routine is also terminated when thestate of the system is not determined to be normal in step S360 and whenthe normality counter value is less than δ in step S380.

[0061] Next, a malfunction determination routine based on thepreliminary malfunction determination flag and the malfunction flag willnow be described with reference to the flowchart of FIG. 6. The CPU 110executes the malfunction determination routine of FIG. 6 according to acontrol program stored in the ROM 120 as an interruption routine everypredetermined period.

[0062] In step S500, the CPU 110 determines whether the routine isstarted when the engine is being started. If the routine is started whenthe engine is being started, the CPU 110 proceeds to step S510. In stepS510, the CPU 110 determines whether the preliminary malfunctiondetermination flag is on. If the preliminary malfunction determinationflag is on, the CPU 110 proceeds to step S520. In step S520, the CPU 110sets the malfunction determining condition flag on and stores themalfunction determining condition flag in the flag area 131 of thenormal RAM 130. When the preliminary malfunction determination flag isoff, the CPU 110 proceeds to step S530. In step S530, the CPU 110 setsthe malfunction determining condition flag off and stores themalfunction determining condition flag in the normal RAM 130. In stepsS500 to S530, the CPU 110 determines whether there is a history of thepreliminary malfunction determination when the engine is being started.If the preliminary malfunction determination flag is on, the malfunctiondetermining condition flag is set to on.

[0063] After executing step S520 or step S530, or when the outcome ofstep S500 is negative, the CPU 110 proceeds to step S540. In step S540,the CPU 110 determines whether the malfunction determining conditionflag and the malfunction flag are on. If the malfunction determiningcondition flag and the malfunction flag are on, the CPU 110 determinesthat there is a malfunction in the idle control procedure and proceedsto step S550. In step S550, the CPU lights the alarm lamp 14 andthereafter terminates the current routine.

[0064] The malfunction determination routine of FIG. 6 is alsoterminated when at least one of the malfunction determining conditionflag and the malfunction flag is off in step S540.

[0065] The malfunction determining apparatus according to the secondembodiment has the following advantages.

[0066] If the malfunction counter value reaches the value ε in the firsttrip, a malfunction is preliminarily determined. In the second trip,which is later than the first trip, a malfunction is determined when themalfunction counter value reaches value ε again. Therefore, amalfunction is resolved by restarting the engine is not detected as amalfunction, which improves the accuracy of the malfunctiondetermination.

[0067] A malfunction determining apparatus according to a thirdembodiment of the present invention will now be described. Thedifferences from the first embodiment will mainly be discussed below.

[0068] In a malfunction determination procedure of the third embodiment,the number of the malfunction test is stored in the data area 144 of thestandby RAM 140. The CPU 110 evaluates the reliability of themalfunction counter value based on the ratio of the number of detectedmalfunctions to the number of performed test.

[0069] A malfunction determination routine according to the thirdembodiment will now be described with reference to the flowchart of FIG.7. The CPU 110 executes the malfunction determination routine of FIG. 7according to a control program stored in the ROM 120 as an interruptionroutine every predetermined period.

[0070] Like in step S100 of FIG. 2, the CPU 110 determines whether themalfunction test condition is satisfied in step S700. If the malfunctiontest condition is satisfied, the CPU 110 proceeds to step S710. In stepS710, the CPU 110 increments the number of time of the test and storesthe incremented number of the test in the data area 144 of the standbyRAM 140.

[0071] Like in step S110 of FIG. 2, the CPU 110 determines whether amalfunction is detected. If a malfunction is detected, the CPU 110proceeds to step S730. In step S730, the CPU 110 increments themalfunction counter value and stores the incremented value in themalfunction counter area 141 of the standby PAM 140.

[0072] In steps S740 to S760, the CPU 110 computes the ratio of thenumber of times of the malfunction test to the malfunction countervalue, which represents the number of times when a malfunction isdetected. The CPU 110 determines whether there is a malfunction based onthe computed ratio. That is, in step S740, the CPU 110 determineswhether the number of times of the test is equal to or greater than apredetermined value X. If the number of times of the test is less thanthe value X, the CPU 110 determines that the number of times of the testis not sufficient for determining a malfunction and terminates themalfunction determination routine. In other words, when the number oftimes of the test is less than the value X, the CPU 110 determines thata reliable determination cannot be performed even if the ratio of themalfunction counter value to the number of times of the test issufficiently great, and terminates the malfunction test routine.

[0073] If the number of times of the test is equal to or greater thanthe value X, the CPU 110 determines that the number of times of the testis sufficient for accurately determining a malfunction and proceeds tostep S750. In step S750, the CPU 110 computes the ratio of themalfunction counter value to the number of times of the test (themalfunction counter value/the number of times of the test). The CPU 110determines whether the computed ratio is equal to or greater than apredetermined value Y. If the ratio is equal to or greater than thevalue Y, the CPU 110 proceeds to step S760. In step S760, the CPU 110determines that there is a malfunction in the idle speed control andsets the malfunction flag on. That is, when the test is performed for asufficient number of times and the ratio of the malfunction countervalue to the number of times of the test is sufficiently great, thereliability of the malfunction counter is determined to be reliable. TheCPU 110 determines a malfunction and lights the alarm lamp 14 based onthe malfunction flag, which is on.

[0074] After step S760 or when the ratio is less than the value Y instep S750, the CPU 110 proceeds to step S770. In step S770, the CPU 110resets the number of times of the test and the malfunction counter valueto zero. Thereafter, the CPU 110 terminates the malfunction testroutine.

[0075] The malfunction determining apparatus according to the thirdembodiment has the following advantages.

[0076] (1) The number of times of the test and the malfunction countervalue are stored in the standby PAM 140 and maintained when the engineis not running. Therefore, even if the malfunction test is notfrequently performed, for example, if short trips are repeated, amalfunction is reliably determined. Further, the number of times of thetest is accumulated, and when the ratio of the malfunction counter valueto the number of times of the test is equal to or greater than apredetermined value, a malfunction is determined. Therefore, amalfunction is determined while the malfunction counter value isappropriately evaluated. As a result, erroneous determination of amalfunction due to erroneously detected malfunctions is prevented, whichimproves the accuracy of the malfunction determination.

[0077] (2) When the number of times of the test is equal to or greaterthan a predetermined value, a malfunction is determined based on theratio of the malfunction counter value to the number of times of thetest. Accordingly, the reliability of the malfunction counter value isaccurately evaluated while improving the accuracy of the malfunctiondetermination.

[0078] It should be apparent to those skilled in the art that thepresent invention may be embodied in many other specific forms withoutdeparting from the spirit or scope of the invention. Particularly, itshould be understood that the invention may be embodied in the followingforms.

[0079] In the second embodiment, the malfunction counter value is resetwhen the state of the system is determined to be normal in step S360.However, the malfunction counter value may be reset when the normalitycounter value reaches a predetermined value. Also, the normality countervalue may be reset when the malfunction counter value reaches apredetermined value.

[0080] In the second embodiment, the alarm lamp 14 is lit when themalfunction determining condition flag and the malfunction flag are onin step S540 of FIG. 6. Thereafter, the alarm lamp 14 may becontinuously lit even if the flags are set off. Also, the number oftimes that the normality counter value reaches the value δ may be storedand the alarm lamp 14 may be turned off when the stored number reaches apredetermined value.

[0081] In the second embodiment, the malfunction counter value is notincremented when the preliminary malfunction determination is performedin the same trip. For example, once the preliminary malfunctiondetermination is performed, step S300 and subsequent steps of FIG. 5need not be executed in the same trip. Also, after increment of themalfunction counter value is prohibited for a predetermined period, themalfunction counter value may start being incremented in the same trip.

[0082] Once the preliminary malfunction determination is performed,increment of the malfunction counter value may be prohibited until theengine is started again from a cold state. In this case, a malfunctionthat occurs only during a warming up cycle, in which the engine isstopped for a short period, and is not reproduced is not determined.

[0083] In the second embodiment, the reliability evaluations need not beperformed. Specifically, the malfunction counter value need not be resetwhen the system is determined to be normal, the normality counter valueneed not be reset when a malfunction is detected, and the preliminarymalfunction determination flag need not be set off when the number oftimes that the system is determined to be normal reaches the value δ.Instead, increment of the malfunction counter value may be prohibitedfor a predetermined period after the preliminary malfunctiondetermination.

[0084] In the first and second embodiments, the normality counter valuestored in the standby RAM 140 is used for evaluating the reliability ofthe malfunction counter value stored in the standby RAM 140. Forexample, the normality counter value may be stored in the normal RAM130. Instead of the normality counter value, the accumulated number oftimes when the system is determined to be normal may be used forevaluating the malfunction counter value. In this case, the malfunctioncounter value may be reset when the accumulated time in a single idlingreaches a predetermined value.

[0085] In the third embodiment, the number of times of test isincremented every time the test condition is satisfied. However, as insteps S110 and step S170 of FIG. 2, a process for detecting malfunctionand a process for determining whether the state of the system is normalmay be executed, and the number of increment of the malfunction countervalue in step S120 of FIG. 2 or the number of increment of the normalitycounter value in step S180 of FIG. 2 may be accumulated.

[0086] In the third embodiment, when the malfunction counter valuereaches a predetermined value, whether the number of times of the testhas reached a predetermined value may be determined and, if the numberof times of the test has reached the predetermined value, a malfunctionmay be determined.

[0087] In the first to third embodiments, the malfunction determinationroutine is an interruption. However, the time to start the malfunctiondetermination routine may be changed. For example, the malfunctiondetermination routine may be started when a signal indicating that thethrottle valve is fully closed is sent to the ECU 100. In other words,when a device that detects the state of the engine system supplies aninterruption signal to the ECU 100, the malfunction determinationroutine may be started.

[0088] In the first to third embodiments, a malfunction is detectedbased on the difference between the target engine speed and the actualengine speed when the engine has been idling for a predetermined period.However, malfunction may be detected in different manners.

[0089] The first to third embodiments may be applied to a malfunctiondetermining apparatus other than the malfunction determining apparatusfor idle speed control. For example, the present invention may beapplied to a malfunction determining apparatus for a secondary airsupply apparatus, a catalytic converter and an apparatus that performsEGR by the engine load. That is, the present invention is particularlyeffective when applied to an apparatus in which a test condition issatisfied in relatively limited running state.

[0090] Therefore, the present examples and embodiments are to beconsidered as illustrative and not restrictive and the invention is notto be limited to the details given herein, but may be modified withinthe scope and equivalence of the appended claims.

What is claimed is:
 1. An apparatus for determining the state of anengine system, comprising: a processing unit, wherein the processingunit includes: detecting means, wherein the detecting means detectswhether there is a malfunction in the engine system every time apredetermined condition is satisfied; first counter means, wherein thefirst counter means generates a first counter value by counting thenumber of times when the detecting means detects a malfunction; secondcounter means, wherein the second counter means generates a secondcounter value for evaluating the reliability of the first counter value;and a memory, which is connected to the processing unit, wherein thememory stores the first and second counter values regardless of whetherthe engine is stopped; wherein the processing unit further includesdetermining means, wherein the determining means evaluates thereliability of the first counter value based on the second countervalue, wherein, when the first counter value is reliable and reaches apredetermined value, the determining means determines that there is amalfunction in the engine system.
 2. The apparatus according to claim 1, wherein the second counter value represents the number of times of atest for the engine system performed by the processing unit; wherein thedetermining means computes the ratio of the first counter value to thesecond counter value, wherein, when the ratio is equal to or greaterthan a second predetermined value, the determining means determines thatthe first counter value is reliable and determines whether there is amalfunction in the engine system.
 3. The apparatus according to claim 1, wherein, when the first counter value reaches the predetermined value,the determining means preliminarily determines that there is amalfunction in the engine system and resets the first counter value, andwherein, when the first counter value reaches the predetermined valueagain after the preliminary determination, the determining meansdetermines that there is a malfunction in the engine system.
 4. Theapparatus according to claim 1 , wherein the apparatus is used todetermine whether there is a malfunction in the engine system in idlespeed control of the engine system, and wherein the predeterminedcondition includes a condition whether a predetermined period haselapsed after the idle speed control is started.
 5. An apparatus fordetermining the state of an engine system, comprising: a processingunit, wherein the processing unit includes: malfunction detecting means,wherein the malfunction detecting means detects whether there is amalfunction in the engine system every time a predetermined condition issatisfied; first counter means, wherein the first counter meansgenerates a first counter value by counting the number of times when themalfunction detecting means detects a malfunction; normality detectingmeans, wherein the normality detecting means detects whether the stateof the engine system is normal every time a predetermined condition issatisfied; and determining means, wherein the determining meansevaluates the reliability of the first counter value based on thedetection result of the normality detecting means, wherein, when thefirst counter value is reliable and reaches a first predetermined value,the determining means determines that there is a malfunction in theengine system.
 6. The apparatus according to claim 5 , wherein theprocessing unit further includes: second counter means, wherein thesecond counter means generates a second counter value by counting thenumber of times when the normality detecting means detects that thestate of the engine system is normal; and reset means, wherein, when thesecond counter value reaches a second predetermined value, the resetmeans resets the first counter value.
 7. The apparatus according toclaim 6 , further comprising a memory, which is connected to theprocessing unit, wherein the memory stores the first and second countervalues regardless of whether the engine is stopped.
 8. The apparatusaccording to claim 5 , wherein, when the first counter value reaches thefirst predetermined value, the determining means preliminarilydetermines that there is a malfunction in the engine system and resetsthe first counter value, and wherein, when the first counter valuereaches the first predetermined value again after the preliminarydetermination, the determining means determines that there is amalfunction in the engine system.
 9. An apparatus for determining thestate of an engine system, comprising: a processing unit, wherein theprocessing unit includes: detecting means, wherein the detecting meansdetects whether there is a malfunction in the engine system every time apredetermined condition is satisfied; counter means, wherein the countermeans generates a counter value by counting the number of times when thedetecting means detects a malfunction; preliminary determining means,wherein, when the counter value reaches a predetermined value, thepreliminary determining means preliminarily determines that there is amalfunction in the engine system and generates preliminary determinationinformation; and a memory, which is connected to the processing unit,wherein the memory stores the counter value and the preliminarydetermination information regardless of whether the engine is stopped;wherein the processing unit further includes: reset means, wherein, whenit is preliminarily determined that there is a malfunction in the enginesystem, the reset means resets the counter value; prohibiting means,wherein the prohibiting means prohibits the counter means from countingfor a predetermined period after the preliminary determination; andmalfunction determining means, wherein, when the counter value reachesthe predetermined value again, the malfunction determining meansdetermines that there is a malfunction in the engine system.
 10. Theapparatus according to claim 9 , wherein the predetermined periodincludes a period from when the preliminary determination is made towhen the engine is subsequently started after being cooled.
 11. A methodfor determining the state of an engine system, comprising: detectingwhether there is a malfunction in the engine system every time apredetermined condition is satisfied; generating a first counter valueby counting the number of times when a malfunction is detected in thedetecting step; generating a second counter value for evaluating thereliability of the first counter value; storing the first and secondcounter values in a memory, wherein the memory maintains the first andsecond counter values regardless of whether the engine is stopped;evaluating the reliability of the first counter value based on thesecond counter value; and determining that there is a malfunction in theengine system when the first counter value is reliable and reaches apredetermined value.
 12. The method according to claim 11 , wherein thesecond counter value represents the number of performed times of a testfor the engine system; wherein evaluating includes: computing the ratioof the first counter value to the second counter value determining thatthe first counter value is reliable when the ratio is equal to orgreater than a second predetermined value.
 13. The method according toclaim 11 , wherein determining includes: preliminarily determining thatthere is a malfunction in the engine system when the first counter valuereaches the predetermined value; resetting the first counter value basedon the preliminary determination; and determining that there is amalfunction in the engine system when the first counter value reachesthe predetermined value again after the preliminary determination. 14.The method according to claim 11 , wherein the method is applied to anapparatus that determines whether there is a malfunction in the enginesystem in idle speed control of the engine system, and wherein thepredetermined condition includes a condition whether a predeterminedperiod has elapsed after idle speed control is started.
 15. A method fordetermining the state of an engine system, comprising: detecting whetherthere is a malfunction in the engine system every time a predeterminedcondition is satisfied; generating a first counter value by counting thenumber of times when a malfunction is detected in the detecting step;detecting whether the state of the engine system is normal every time apredetermined condition is satisfied; evaluating the reliability of thefirst counter value based on the detection result of the normalitydetecting step; and determining that there is a malfunction in theengine system when the first counter value is reliable and reaches afirst predetermined value.
 16. The method according to claim 15 ,further comprising: generating a second counter value by counting thenumber of times when the state of the engine system is detected to benormal; and resetting the first counter value when the second countervalue reaches a second predetermined value.
 17. The method according toclaim 16 , further comprising storing the first and second countervalues in a memory, wherein the memory maintains the first and secondcounter values regardless of whether the engine is stopped.
 18. Themethod according to claim 15 , wherein the determining step includes:preliminarily determining that there is a malfunction in the enginesystem when the first counter value reaches the predetermined value;resetting the first counter value based on the preliminarilydetermination result; and determining that there is a malfunction in theengine system when the first counter value reaches the predeterminedvalue again after the preliminary determination.
 19. A method fordetermining the state of an engine system, comprising: detecting whetherthere is a malfunction in the engine system every time a predeterminedcondition is satisfied; generating a counter value by counting thenumber of times when a malfunction is detected in the detecting step;preliminarily determining that there is a malfunction in the enginesystem when the counter value reaches a predetermined value andgenerating preliminary determination information; storing the countervalue and the preliminary determination information in a memory, whereinthe memory maintains the counter value and the preliminary determinationinformation regardless of whether the engine is stopped; resetting thecounter value when it is preliminarily determined that there is amalfunction in the engine system; prohibiting the counter value frombeing generated for a predetermined period after the preliminarydetermination; and determining that there is a malfunction in the enginesystem when the counter value reaches the predetermined value again. 20.The method according to claim 19 , wherein the predetermined periodincludes a period from when the preliminary determination is made towhen the engine is subsequently started after being cooled.